home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1998 October / Macworld (1998-10).dmg / Shareware World / Utilities / Text Processing / GST-ShawBerry / ShawBerry - Read Me < prev   
Text File  |  1998-08-01  |  11KB  |  251 lines

  1. RELEASE NOTES FOR SHAWBERRY...
  2.  
  3.  
  4.  
  5. The usual white noise...
  6.  
  7. This software is named after Kip Shaw, for two very good reasons.
  8. First, it was Kip who got me to do it now, rather than later. And,
  9. second, I keep coming up with ideas for software I fully intend to
  10. name after Kip, only to roll those ideas into other tools. I figured
  11. I'd better get the job done now, rather than take the chance of
  12. forgetting to do it later.
  13.  
  14. ShawBerry: Kip and his wife, Faiga, sent our children a load of
  15. wonderful books. Among them was a volume called "Jamberry", by
  16. Bruce Degan, which is great fun to declaim. From there it's not
  17. hard to see how I arrived at this name.
  18.  
  19. We did this now because PixPex, if used in bulk, can create a very
  20. time-consuming editing problem. We discussed a number of ways
  21. around this, but none of them seemed fully satisfactory to me.
  22. Moreover, none of the stop-gap solutions offered aid for other,
  23. similar problems. So: ShawBerry will not only plug PixPexSpex lines
  24. into a file, it will also deal with a host of other text merging
  25. problems. For example: if you have a spreadsheet PRN file that
  26. comes to you in chunks, you can reassemble the rows to the way they
  27. appear within the spreadsheet. Problems such as these are not
  28. terribly common - but they don't _need_ to be for this software to
  29. save you a whale of a lot of time.
  30.  
  31. And: the lines are blurring in my work between quick hacks and
  32. serious utilities. This is a serious piece of software, and yet I
  33. knocked it out in a couple of hours at the end of a long and ugly
  34. day. I'm even prouder of myself than normal (grin), and the pains
  35. we've taken to make modeless an essentially modal function help
  36. ShawBerry to live up to its honorable namesake.
  37.  
  38.  
  39.  
  40. ShawBerry: the nitty gritty details...
  41.  
  42. ShawBerry does this: it merges text from one file into another at
  43. the insertion points you specify. You tell it which file to amend
  44. and which file to take the amendments from. You can control whether
  45. or not the insertion point text is retained or omitted, whether
  46. searchable marks are inserted before and after the amendment text,
  47. and whether or not the amendment is followed by a carriage return.
  48.  
  49. ShawBerry works by interaction _only._ I much prefer to work by
  50. Drag & Drop, but I saw no fail-safe way for the software to
  51. distinguish the Amend file from the Amendment file. Consequently,
  52. you must specify each one interactively, by means of Standard File
  53. dialogs.
  54.  
  55. When you hit the Start button, ShawBerry searches within the Amend
  56. file until it finds the first instance of the Insertion point text.
  57. It then "pastes" in the first line of Amendment text, inserting it
  58. _before_ the Insertion point. The the same thing is done for the
  59. second Insertion point found, pasting the second amendment, and so
  60. on, until the Amend file is completed. A new file (BBEdit by
  61. default) is written to disk using a name you specify. 
  62.  
  63. ShawBerry works out of one modeless dialog box, plus the menu bar.
  64. About and Quit are familiar to everyone. The Command key
  65. equivalents for Copy, Paste, and Cut work.
  66.  
  67. In the Preferences menu, when you Save preferences, the switch
  68. settings and the Insertion point text are saved. So if you have a
  69. default way of working, save the whole thing as your prefs and they
  70. will come up with each launch.
  71.  
  72. (Res Edit Hacks only: you can have two sets of prefs like this: set
  73. up one set and Save, Quit, from ResEdit copy the contents of PREF 129
  74. into PREF 128, launch ShawBerry and set up another set of prefs and
  75. Save again (which, of course, overwrites PREF 129); now the first set
  76. is available from Restore defaults, and the second comes up at launch
  77. time and when you Restore saved prefs; this general procedure will
  78. work with any app of mine that has a Preferences menu.)
  79.  
  80. At the top of the dialog box is a Text Edit region into which you
  81. specify your Insertion point text. An Insertion point can be up to
  82. 254 characters in length. It consists of _string literals,_ that is
  83. literal case-sensitive text characters with no wildcards. However,
  84. two aliases are permitted: ^t (or ^T) to denote a Tab and ^p (or
  85. ^P) to denote a Carriage Return. An Insertion point is essentially
  86. a search string, and it must reflect text actually present in the
  87. Amend file. If it is absent, you will get an error message and
  88. you'll have the opportunity to fix the mistake. The best way to
  89. assure fault-free performance is to simply Copy the Insertion point
  90. text from the Amend file and Paste it into ShawBerry.
  91.  
  92. The "Amend…" button presents a Standard File dialog that you will
  93. use to specify the file into which you will be "pasting"
  94. amendments.
  95.  
  96. The "Amendment…" button presents a Standard File dialog that you
  97. will use to specify the file from which the amendments will be
  98. "copied".
  99.  
  100. In other words: the Amend file is _almost_ the way you want it. The
  101. Amendments file contains correction lines that, when "pasted" into
  102. the Amend file, will fix it in the way that you want. Amendments
  103. are written one to a paragraph. Ideally, there should be a
  104. one-to-one correspondece between Insertion points in the Amend file
  105. and amendment lines in the Amendment file. However: in the name of
  106. modelessness, we are permitting you to proceed even if there are
  107. more of one than the other. If there are extra Insertion points,
  108. nothing will be pasted in. If there are extra amendments, they will
  109. be appended in bulk at the end of the file ShawBerry creates.
  110.  
  111. Below the Amend button is a radio button group that controls how
  112. the Insertion point text will be handled in the Amend file. If Omit
  113. text is selected, the Insertion point text will be omitted from the
  114. file ShawBerry creates. If Retain text is selected, the Insertion
  115. point text will be output after the amendment, since amendments are
  116. "pasted" in before the Insertion point. Below, we'll talk about how
  117. to take advantage of this switch.
  118.  
  119. Below the Amendment button are two check boxes which control how
  120. amendments are "pasted" in. If Insert marks is checked, searchable
  121. marks will be inserted immediately before and after the amendment
  122. text. The mark before the amendment is "|[|" (omitting the quote
  123. marks), and the mark after is "|]|". Users of Torquemada's
  124. wildstrings will not need to be told what to do about these, but
  125. I'll be blathering about them later, anyway.
  126.  
  127. If Strip returns is checked, the trailing carriage return that ends
  128. each amendment line is omitted from the file ShawBerry creates.
  129. Since amendment lines must end in a carriage return, so that
  130. ShawBerry can tell one from the next, we need a way to specify
  131. whether the returns are to be included with the amendment, or if
  132. they're simply there as terminators.
  133.  
  134. The Quit button is obvious - I hope! (grin)
  135.  
  136. The Start… button sets the ball in motion. An astounding amount of
  137. error-trapping happens when you hit start, and each error condition
  138. presents a modal dialog telling you what's gone wrong and giving
  139. you a chance to fix it. If you get a message advising you that the
  140. files are too large to fit in the current memory allocation, Quit
  141. from ShawBerry and increase its allocation; ShawBerry will process
  142. arbitrarily large files so long as it has memory enough to fit both
  143. the Amend and Amendment files in RAM simultaneously.
  144.  
  145. Finally, ShawBerry is 32-bit clean, multi-finder friendly, Apple
  146. Human Interface Guidelines loyal, System 6, 7 or 8 brave,
  147. external-application courteous, and it possesses many other fine
  148. qualities associated with Boy Scouts and software by me.
  149. Incidentally, ShawBerry does _not_ feature the understated yet
  150. strangely exotic Movado Museum watch cursor, since it's too damn
  151. fast to need it. Also incidentally, ShawBerry makes use of
  152. technology that will, someday, make it possible for Torquemada to
  153. run without a watch cursor...
  154.  
  155.  
  156.  
  157. ShawBerry in real life...
  158.  
  159. I think it might be better if the universe were asequential...
  160.  
  161. I had to spew out all of the above static in order to get to this
  162. static. The details above make no sense without this as context,
  163. but this context would make no sense without the above details to
  164. refer back to. So: either we rewrite the time functions to permit
  165. optional randomization, or I'm going to have to get someone else to
  166. write docs for me... (grin)
  167.  
  168. All right, look at it: here's Kip's problem: he has a file of text
  169. that is flagged with text like this: "[PICTURE 1]", "[PICTURE 2]",
  170. "[PICTURE 3]". He want to paste an Xtags picture box specification
  171. in each of those spots. Surprise!: a PixPexSpex… file is a
  172. perfectly formatted Amendment file, as is (assuming he clicked on
  173. the pictures in the right order). So he could do two things:
  174.  
  175. 1. Run a Torquemada set like this
  176.  
  177. [PICTURE ^#^?]
  178. [PICTURE]
  179.  
  180. which makes the flags searchably consistent. Then he specifies
  181. "[PICTURE]" as his Insertion point in ShawBerry, hits Omit text,
  182. unchecks Insert marks and checks Strip returns, specifies the
  183. Torqued file as his Amend file and the PixPexSpex… file as his
  184. Amendment file. Presto! Done...
  185.  
  186. 2. Alternatively, he could specify "[PICTURE " as his Insertion
  187. point and run on the _original_ file, with Insert marks checked,
  188. then Torque like this:
  189.  
  190. |[|^?|]|^*]
  191. ^?
  192.  
  193. to remove the marks and the leftover text.
  194.  
  195. That's what the marks are for, to make uniquely searchable
  196. Torquemada strings. You can also use them in conjunction with your
  197. word processor to make sure that what you got is what you wanted.
  198.  
  199. Here's more: in the TorqueManual, I talk about how to take text set
  200. in multiple columns and break it up into one long column. Suppose
  201. you want to do the opposite? Why? Life is like that sometimes. I've
  202. has people send me PRN files from _very_ wide spreadsheet files.
  203. The spreadsheet software would only permit PRN files to be ±140
  204. characters wide, so the spreadsheets would be segmented in vertical
  205. chunks, perfectly useless. I've also had parallel database reports
  206. that needed to be merged into one horizontal line of data. And I've
  207. had situations where lines from separate files needed to be blended
  208. as alternating paragraphs. All of these are duck soup for
  209. ShawBerry.
  210.  
  211. Take the spreadsheets (please!): the Amend file would be the left
  212. chunk, the Amendment file the next chunk to the right (with the
  213. procedure repeated for any additional chunks). The insertion point
  214. is "^p", the end of the line, soldier. We'll Retain text and Strip
  215. returns, although we could do just the opposite. Better the former
  216. if we Insert marks, as we mght want to do in order to verify and
  217. clean-up the formatting.
  218.  
  219. And the blended paragraphs: Insertion point is "^p", Retain text,
  220. uncheck Strip returns. Voila!
  221.  
  222.  
  223.  
  224. Wave bye-bye...!
  225.  
  226. That's it, I think. This solves Kip's immediate problem in a way
  227. that makes sense to me: I think both Kip and I are commited to
  228. having all of the work done _before_ text is imported, so this
  229. stands a fair chance of eliminating some delays from the process.
  230. Moreover, it makes it possible to do generalized merging for any
  231. data processing purpose. In conjunction with Torquemada, it makes a
  232. formidable tool. Likewise for Shane the Plane. In the Shane the
  233. Plane documentation, Kip has words for all of us on how to use
  234. Shane, Caesura, Torquemada, ShawBerry and other stuff to achieve
  235. some really impressive hands-off text massage...
  236.  
  237.  
  238.  
  239. Very Best,
  240.  
  241.  
  242.  
  243. Greg Swann
  244.  
  245. gswann@kagi.com
  246.  
  247. 3608 West Cochise Drive
  248. Phoenix, AZ 85051
  249.  
  250. 8/1/98
  251.